import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     *
     * @param nums1 int整型ArrayList 
     * @param nums2 int整型ArrayList 
     * @return int整型ArrayList
     */
    public static ArrayList<Integer> intersection (ArrayList<Integer> nums1, ArrayList<Integer> nums2) {
        // write code here
        ArrayList<Integer> list = new ArrayList<>();
        HashSet<Integer> set1 = new HashSet<>();
        set1.addAll(nums1);
        HashSet<Integer> set2 = new HashSet<>();
        set2.addAll(nums2);
        Object[] o1 = set1.toArray();
        Object[] o2 = set2.toArray();
        for(int i = 0; i < o1.length; i++) {
            for(int j = 0; j < o2.length; j++) {
                int i1 = (Integer)o1[i];
                int i2 = (Integer)o2[j];
                if(i1 == i2) {
                    list.add(i1);
                }
            }
        }
        return list;
    }

    public static void main(String[] args) {
        ArrayList<Integer> list1 = new ArrayList<>();
        list1.add(1);
        list1.add(2);
        list1.add(3);
        ArrayList<Integer> list2 = new ArrayList<>();
        list2.add(8);
        list2.add(2);
        list2.add(2);
        list2.add(3);
        list2.add(8);
        ArrayList<Integer> list = intersection(list1, list2);
        System.out.println(list);
    }
}